
function log<T>(value: T): T {
    console.log(value)
    return value
}

log<string[]>(['a', 'b'])
log(['a', 'c'])

// type Log = <T>(value: T) => T
// let myLog: Log = log

// interface Log {
//     <T>(value: T): T
// }

interface Log<T = string> {
    (value: T): T
}

let myLog: Log<number> = log
myLog(1)

let myLog2: Log = log
myLog2('1')












